This invention relates generally to social networking, and in particular to forming sentences from structured objects and actions on a social networking system.
Social networking systems have become prevalent in recent years because they provide a useful environment in which users can connect to and communicate with other users. Although a variety of different types of social networking systems exist, these systems commonly provide mechanisms allowing users to define and interact within their social networks. In this context, a user may be an individual or any other entity, such as a business or other non-person entity. Accordingly, while enabling social communications among friends, a social networking system can also be a valuable tool for businesses to engage with potential consumers. Even without a commercial purpose, a social networking system may allow other types of entities to spread their message. For example, a non-person entity may set up a page or group that other users can “like” or otherwise become associated with, which enables the non-person entity to provide a forum to receive and transmit communications to a group of interested users.
Useful social information may be maintained conceptually in a “social graph” of nodes interconnected by edges. Each node in the social graph represents something that can act on and/or be acted upon by another node. Common examples of nodes include users, non-person entities, content items, groups, events, locations, messages, concepts, and any other things that can be represented by an object in a social networking system. An edge between two nodes in the social graph represents a particular kind of connection between the two nodes resulting from an action that was performed by one of the nodes on the other node.
For example, if one user establishes a connection with another user in the social networking system, the users are represented as nodes, and the edge between them represents the established connection. Continuing this example, one user may send a message to the other within the social networking system. The messaging action represents another edge between the two nodes that is identified by the social networking system. The message itself may be treated as a node. In another example, one user may tag another user in an image maintained by the social networking system. This tagging action may create edges between the users as well as an edge between each of the users and the image, also a node. In yet another example, if a user confirms attendance at an event, the user and the event are nodes, where the attendance of the event is the edge. Using a social graph, therefore, a social networking system may maintain many different types of objects and the interactions and connections among those objects, thereby generating an extremely rich store of socially relevant information.
Real-world social interactions, such as driving across the country, visiting landmarks, all while listening to a soundtrack discovered with other friends on the road trip, have not been adequately captured by social networking systems. This problem can be appreciated in the context of the discussion of the social graph. If something is not represented by a node in the first place, then other nodes cannot interact with it such that the social networking system can discover an edge between those nodes. For example, a person may listen to dance music on an internet radio station while jogging in the park with her friend. Multiple external systems and websites may be used to capture this information, including song title, artist, genre, location, miles traveled, and duration of the run. If it were desirable to discover the artists and genres of music that a user listens to on external systems, that information would have to be provided to the social networking system by the external systems. Currently, users on external systems would manually share this information to the social networking system. This creates a bottleneck in sharing the music played using the external system. Further, if an external system does not enable this feature, users cannot share music with others on the social networking system. Opening up a social networking system to the unlimited amount of information that may be gathered from external real-world interactions, such as listening to music, could also inundate users of the social networking system with too many content items. Efficient mechanisms have not been generated to present this information to users of the social networking system.
Accordingly, what are needed are mechanisms to define a customized structure of the social graph, including actions and objects, to enable a social networking system to discover, share, and integrate information about these real-world social interactions into the social networking user experience.